package com.soo.hoo.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.soo.hoo.admin.model.entity.SysUserFamily;

import java.util.List;

/**
 * <p>
 * 用户所属家庭，一个用户只会有一个家庭 服务类
 * </p>
 *
 * @author 杨燚
 * @since 2024-04-20
 */
public interface UserFamilyService extends IService<SysUserFamily> {

    /**
     * 生成家庭id
     *
     * @return 家庭id
     */
    String generateFamilyId();


    /**
     * 设置用户的家庭id
     *
     * @param userId       用户id
     * @param mainFamilyId 用户自己的家庭id
     * @param familyIds    用户关联的其他家庭id
     */
    void setFamily(Long userId, String mainFamilyId, String... familyIds);


    /**
     * 获取用户家庭信息
     *
     * @param userId 用户id
     * @return 用户家庭信息
     */
    SysUserFamily getFamily(Long userId);

    /**
     * 获取用户家庭信息
     *
     * @param familyId 家庭id
     * @return 用户家庭信息
     */
    SysUserFamily getFamilyByFamilyId(String familyId);

    /**
     * 获取用户家庭信息
     *
     * @param familyIds 家庭ids
     * @return 用户家庭信息
     */
    List<SysUserFamily> getFamilyByFamilyId(List<String> familyIds);

    /**
     * 获取用户的家庭id
     *
     * @param userId 用户id
     * @return 用户家庭id
     */
    String getUserFamilyId(Long userId);
}
